package com.arpa.wms.domain.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 出货单明细DTO
 * </p>
 *
 * @author LEO
 * @since 2020-08-07
 */
@Data
@ApiModel(value="DeliveryItemVO对象", description="出货单明细")
public class DeliveryItemVO implements Serializable {

    @ApiModelProperty(value = "主键")
    private String id;

    @ApiModelProperty(value = "所属机构")
    private String groupCode;

    @ApiModelProperty(value = "数据标识")
    private String code;

    @ApiModelProperty(value = "数据标识，用于code被清除时标记发货单明细")
    private String deliveryItemCode;

    @ApiModelProperty(value = "出货单号")
    private String deliveryCode;

    @ApiModelProperty(value = "来源单明细标识")
    private String sourceItemCode;

    @ApiModelProperty(value = "商品编码code")
    private String goodsCode;

    @ApiModelProperty(value = "商品编码")
    private String goodCode;

    @ApiModelProperty(value = "商品名称")
    private String goodsName;

    @ApiModelProperty(value = "商品条码")
    private String goodsBarCode;

    @ApiModelProperty(value = "商品规格")
    private String spec;

    @ApiModelProperty(value = "商品保质期（天）")
    private String expirationQuantity;

    @ApiModelProperty(value = "单位")
    private String goodsUnit;

    @ApiModelProperty(value = "基本单位")
    private String basicUnit;

    @ApiModelProperty(value = "基本单位")
    private String basicUnitName;

    @ApiModelProperty(value = "单位名称")
    private String goodsUnitName;

    @ApiModelProperty(value = "版本号")
    private Integer version;

    @ApiModelProperty(value = "数量")
    private BigDecimal quantity;

    @ApiModelProperty(value = "明细总数量")
    private BigDecimal totalNum;

    @ApiModelProperty(value = "实际分配数量")
    private BigDecimal distributionQuantity;

    @ApiModelProperty(value = "拣货数量")
    private BigDecimal pickingQuantity;

    @ApiModelProperty(value = "已退货数量")
    private BigDecimal refundQuantity;

    @ApiModelProperty(value = "可退货数量")
    private BigDecimal canReturnQuantity;

    @ApiModelProperty(value = "批次号")
    private String lotId;

    @ApiModelProperty(value = "库存状态")
    private String goodsStatus;

    @ApiModelProperty(value = "库存状态名称")
    private String goodsStatusName;

    @ApiModelProperty(value = "分配库位")
    private String location;

    @ApiModelProperty(value = "出库数量")
    private BigDecimal outboundQuantity;

    @ApiModelProperty(value = "基本单位转换数量")
    private BigDecimal basicQuantity ;

    @ApiModelProperty(value = "状态")
    private Integer status;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @ApiModelProperty(value = "总数")
    private Long total;

    @ApiModelProperty(value = "可用库存及分配信息")
    private List<InventoryWithDistributionVO> inventoryWithDistributionVOList;


    @ApiModelProperty(value = "导入时使用的序号code")
    private String importCode;

    @ApiModelProperty(value = "仓库code")
    private String warehouseCode;

    @ApiModelProperty(value = "仓库名称")
    private String warehouseName;

    @ApiModelProperty(value = "货主编码code")
    private String shipmentCode;

    @ApiModelProperty(value = "货主名称")
    private String shipmentName;

    @ApiModelProperty(value = "供应商Code")
    private String supplierCode;

    @ApiModelProperty(value = "供应商名称")
    private String supplierName;

    @ApiModelProperty(value = "客户Code")
    private String customerCode;

    @ApiModelProperty(value = "客户名称")
    private String customerName;

    @ApiModelProperty(value = "订单类型")
    private String type;

    @ApiModelProperty(value = "最小单位数量")
    private BigDecimal basicUnitQuantity;

    @ApiModelProperty(value = "计划数量")
    private BigDecimal planQuantity;

    @ApiModelProperty(value = "生产日期")
    private LocalDateTime gmtManufacture;

    @ApiModelProperty(value = "未复核数量")
    private BigDecimal notRecheckQuantity;

    @ApiModelProperty(value = "交易平台订单")
    private String sourceOrderCode;

    @ApiModelProperty(value = "体积")
    private BigDecimal volume;


}
